var CONFIG = require('../../../../common/config');
var CODE = require('../../../../common/code');
var async = require('async');
var moment = require('moment');
var retUtil = require('../util/retUtil');
var TgSearchTagModel = require('../../../../common/mysql/mapping/TgSearchTagModel');
var ItbNotificationModel = require('../../../../common/mysql/mapping/ItbNotificationModel');
var TgSpecialTopicModel = require('../../../../common/mysql/mapping/TgSpecialTopicModel');
var TgTypeModel = require('../../../../common/mysql/mapping/TgTypeModel');
var ItbSceneModel = require('../../../../common/mysql/mapping/ItbSceneModel');
var ItbFontModel = require('../../../../common/mysql/mapping/ItbFontModel');
var javaSearchProjectUtil = require('../util/javaSearchProjectUtil');
var luaUtil = require('../util/luaUtil');
// 分词模块
var Segment = require('node-segment').Segment;// 载入分词模块
var POSTAG = require('node-segment').POSTAG;// 载入词性接口
var segment = new Segment();// 创建实例
segment.useDefault();// 使用默认的识别模块及字典，载入字典文件需要1秒，仅初始化时执行一次即可


var sundryUtil = (function () {
    function sundryUtil() {

    }


    /**
     * 获取首页信息_APP_6_4 添加
     *
     * @author 毛凯
     * @date 2018-4-11
     * @param device 设备标识
     * @param   appVer 版本号
     * @param   callback 回调
     *              err 错误信息
     *              data 返回数据
     * */
    sundryUtil.getAppHomePageInfo_app_v6_4 = function(device, appVer,callback){
        async.series([
                // 热门搜索词
                function(callback){ //*** results[0]
                    sundryUtil.getHotsSearchV6_4(null, function(error,data){ callback(error,data)});
                },
                // banner 图
                function(callback){ //*** results[1]
                    sundryUtil.getAdInfoV6_4(function(error,data){ callback(error,data)}, true);
                },
                // 快速入口
                function (callback) { //*** results[2]
                    sundryUtil.getFastTrackV6_4(function(error,data){callback(error,data)});
                },
                // 秒杀(废弃)
                function(callback){ //*** results[3]
                    //sundryUtil.get_seckillInfo_v6_1(function(error,data){ callback(error,data)});
                    callback(null,null);
                },
                // 热门专题
                function(callback){ //*** results[4]
                    sundryUtil.getSpecialTopicsV6_4(function(error,data){ callback(error,data)});
                },
                // 场景案例
                function (callback) { //*** results[5]
                    sundryUtil.getSceneListV6_4(function(error,data){callback(error,data)});
                },
                // 单页
                function(callback){ //*** results[6]
                    sundryUtil.getHotsPosterV6_4(function(error,data){callback(error,data);});
                },
                // 名片
                function(callback){ //*** results[7]
                    sundryUtil.getHotsBusinessCardV6_4(function(error,data){if(data) {data.title="名片";data.en=CONFIG.CHS_EN.getEn('名片',1);}callback(error,data);});
                },
                // 传单
                function(callback){ //*** results[8]
                    sundryUtil.getHotsLeafletV6_4(function(error,data){if(data) {data.title="传单";data.en=CONFIG.CHS_EN.getEn('传单',1);}callback(error,data);});
                },
                // 展架
                function (callback) { //*** results[9]
                    sundryUtil.getHotsDisplayRackV6_4(function(error, data){if(data) {data.title="展架";data.en=CONFIG.CHS_EN.getEn('展架',1);}callback(error,data);});
                },
                // 微信首图
                function (callback) { //*** results[10]
                    sundryUtil.getHotsWechatCoverBigPicV6_4(function(error,data){callback(error,data);});
                },
                // 微信小图
                function (callback) { //*** results[11]
                    sundryUtil.getHotsWechatCoverSmallPicV6_4(function(error,data){callback(error,data);});
                },
                // 停车牌
                function (callback) { //*** results[12]
                    sundryUtil.getHotsStopSignV6_4(function(error,data){callback(error, data)});
                },
                // 淘宝主图
                function (callback) { //*** results[13]
                    sundryUtil.getHotsTaobaoMainPhotoV6_4(function(error,data){callback(error, data)});
                },
                // 淘宝banner
                function (callback) { //*** results[14]
                    sundryUtil.getHotsTaobaoBannerV6_4(function(error,data){callback(error, data)});
                },
                // 优惠券
                function (callback) { //*** results[15]
                    sundryUtil.getHotsPrintCouponV6_4(function(error,data){callback(error, data)});
                },
                // 不干胶
                function (callback) { //*** results[16]
                    sundryUtil.getHotsPrintStickerV6_4(function(error,data){callback(error, data)});
                },
                // 招贴海报
                function (callback) { //*** results[17]
                    sundryUtil.getHotsPrintPosterV6_4(function(error,data){callback(error, data)});
                },
                // 微商热门
                function (callback) { //*** results[18]
                    sundryUtil.getHotsWechatBusinessV6_4(function(error,data){callback(error, data)});
                },
                // vi 实验室
                function (callback) {  //*** results[19]
                    //sundryUtil.get_vilabInfo_v6_2(function(error,data){callback(error,data)});
                    callback(null,null);
                },
                // 分类信息
                function(callback) { //*** results[20]
                    sundryUtil.getAppTypesInfo(function(error,data){callback(error,data)});
                },
                // 筛选条件
                function(callback) { //*** results[21]
                    sundryUtil.getsearchConditionsInfo(function(error,data){callback(error,data)});
                },

            ],
            // 返回
            function(err, results){
                if(err){
                    console.log(err);
                    return callback(err,null);
                }

                var data = {
                    //"activityUrl" :            "",
                    "hiddenVoiceInput":        1, // 标记隐藏语音输入___废弃
                    "couponActivity":          0,
                    "hiddenFirstActivity":     1,// 1表示隐藏iOS新安装时的抽奖
                    "hiddenPartner" :          0, // 城市合伙人是否隐藏___废弃
                    "qaVersion" :              1,
                    "serviceTel":             "027-87101355",

                    "hotsSearch":              results[0].length>0?results[0][0]:'',
                    "adInfo":                  results[1],
                    "fastTrack":               results[2] || [],
                    "topics":                  results[4],
                    "scene":                   results[5],
                    "hots": [
                        results[6], // 单页
                        results[10], // 微信首图
                        results[11], // 微信小图
                        results[18], // 微商 --
                        results[13], // 淘宝主图
                        results[14], // 淘宝 banner

                        results[7], // 名片 --
                        results[8], // 传单
                        results[9], // 展架
                        results[17], // 招贴海报
                        results[15], //优惠券 --
                        results[16], // 不干胶
                        results[12] // 停车牌 --
                    ],
                    "types" : results[20] || [], // 分类树
                    "searchConditions" : results[21] // 筛选条件 v6_6新增
                };

                // 热门系列截断, 保持列数显示两行
                var row = 2;
                for(var i = 0; i < data.hots.length; i++) {
                    var obj = data.hots[i];
                    if(obj && obj.list) {
                        obj.list = obj.list.slice(0, Math.floor(obj.column)*row);
                    }
                }
                data.dailyFreeCnt = 100;
                // 测试环境限制调大
                if(CONFIG.DEBUG) {
                    data.dailyFreeCnt = 1000;
                }

                // 登录提示协议, 和是否一直显示
                data.privacyHtml = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\"/> <style type=\"text/css\">  body{margin:30px; }p {text-indent: 2.3cm}</style></head><body  ><font size=\"10\" ><p>感谢您使用一键生成！为了让您更加放心的使用一键生成及服务，下文将向您介绍一键生成对部分用户数据的使用情况。请您在使用前查看完整的<a href=\"https://www.itbour.com/mobile/userProtocol.html\">用户协议</a>，以便您能够更好地行使个人权利及保护个人信息。</p><h3>个人信息</h3>在为您提供以下（但不仅限于）以下功能：<ol><li>制作作品和生成草稿</li><li>收藏作品和下载个人作品</li><li>多平台，多终端作品同步</li></ol><p>需要填写手机号登录或第三方登录，一键生成需要依据您提供的信息和授权进行服务。请您在填写或授权前充分考虑并审慎决策。 为了您的权益，如果您对隐私权政策及服务条款的内容有任何疑问，请您通过客服渠道进行询问，一键生成将为您解释。一旦您开始使用一键生成产品或服务，即表示您已经理解并同意前述协议。该协议即构成对您具有约束力的法律文件。</p></font></body></html>",
                data.alwaysShowPrivacyHtml = 1;
                data.qGroupUrl = "https://jq.qq.com/?_wv=1027&k=5Q035Bv";
                // iOS
                if(Number(device)===1) {
                    // 粉丝 1 群
                    // data.qGroupUrl = 'mqqapi://card/show_pslcard?src_type=internal&version=1&uin=565313722&key=ea170bb07771c8b2389025ec59f2b45c8351e51c0a6bf72c9ceeffbd327b5d64&card_type=group&source=external';
                    // 粉丝 2 群
                    data.qGroupUrl = 'mqqapi://card/show_pslcard?src_type=internal&version=1&uin=811610853&key=755b63f4b5d81e6373d53ef22b72a1aef29ededb900fbf681e1e1c17f4f42667&card_type=group&source=external';
                }
                // android
                if(Number(device)===2) {
                    // 粉丝 1 群
                    //data.qGroupUrl = "mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3DnbX2hmeE2PqXcN6VebvP645AxDkcWnm8";
                    // 粉丝 2 群
                    data.qGroupUrl = "mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D"+'y5Vg4KmNJq-j0vladFF2TFyyOF9NtT3U' ;
                }

                return callback(null,data);
            });

    };



    /**
     * 从 java工程中获取搜索商品信息
     *
     * @author 李强
     * @date 2018-05-15
     * @param pageNum            页码
     * @param pageSize           页容量
     * @param keyword            搜索参数, 长度 0-50
     * @param typeLs             模板一级分类, 数组的 json 字符串, 不传标记不限
     * @param vips               vip 类型, 数组的 json 字符串, 0 标记免费, 10 标记vip
     * @param orderBy            0:先按 order 排序, 再按 update_time 排序(默认)/1:按创建时间排序/2:按热度/使用次数排序
     * @param withTotalPage      是否获取总页数, 默认不获取
     * @param callback      回调
     *          error: 查询失败
     *          data : {
     *              list: 查寻的结果列表
     *              totalPage : 总页数
     *          }
     */
    sundryUtil.searchUniItemsFromRedis = function (pageNum,pageSize,keyword,typeLs,vips,orderBy,withTotalPage,callback) {

        // 分词操作
        var kwds = sundryUtil.doSegmentOfText(keyword);
        var param={
            typeLs : typeLs,
            keyword : kwds,
            vip : vips,
            orderBy : orderBy,
            pageNum : pageNum,
            pageSize : pageSize,
            withTotalPage : withTotalPage,
            typeMs : [],
            typeSs :[] ,
            kwdIds :[]
        };

        luaUtil.searchUniItemsFromRedis(param,callback);






//        javaSearchProjectUtil.searchUniItemsFromJavaRedis(param, function (error, List) {
//            if(error){
//                console.log("sundryUtil.js [searchUniItemsFromRedis] err"+error);
//                return callback("没有获取到数据",{});
//            }
//            if(!List){
//                return callback("没有获取到数据",{});
//            }
//            return callback(null,List.data);
//        });
    };


    /**
     * 分词, 在 luaUtil 中也有一份, 重复是为了避免 util 间相互引用
     *
     * @author 王俊
     * @date 2017-11-27
     *
     * @param txt 待分词内容
     * @param min 可分词的最小长度, 默认2
     * @param max 可分词的最大程度, 默认6
     * @return 分词结果, 字符串数组
     */
    sundryUtil.doSegmentOfText = function(txt,min,max){
        if(!txt)    return null;
        // 只能2-6个字以内分词
        min = min || 1;
        max = max || 10;
        if(txt.length>max || txt.length<min){
            return [txt];
        }
        var segs = segment.doSegment(txt);
        var segWords=[];
        for(var i=segs.length-1 ; i>=0;i--){
            var one = segs[i];
            if(one.p !== POSTAG.D_W){//过滤掉标点符号
                // 过滤掉部分词语，例如：色
                var w = one.w.replace(/色/g,'');
                segWords.push(w);
            }
        }
        segWords.push(txt);
        return segWords;
    };



    /***
     * 获取弹框信息_APP_6_6 添加
     * @author 李强
     * @date 2018-05-15
     * 方式: GET
     *测试地址 : http://114.55.172.253:7000/mock/95/yjsc/v2/sundry/getAppHomePageInfo_app_v6_4
     */
    sundryUtil.getActivityWindowInfo_app_v6_6 = function (callback) {
        (new ItbNotificationModel()).getActivityWindowInfo_app_v6_6(function(err, ret){
            if(err) {
                return callback(err, null);
            }
            return callback(null, ret);
        });
    };



    /**
     * 获取 app 6.4 分类信息
     *
     * @return  app 6.4 分类信息的对象
     * */
    sundryUtil.getAppTypesInfo = function(callback) {
        async.series([
            // 单页分类
            function(callback){ //*** results[0]
                sundryUtil.get_poseterTypeM_v5_1(function(error,data){ callback(error,data)});
            },
            // 社交媒体分类
            function (callback) {  //*** results[1]
                sundryUtil.get_socialMediaTypeM_v5_3(function(error,data){callback(error,data)});
            },
            // 电商分类
            function (callback) {  //*** results[2]
                sundryUtil.get_eBusinessTypeM_v5_7(function(error,data){callback(error,data)});
            },
            // 微商分类
            function (callback) { //*** results[3]
                sundryUtil.get_wechatBusiness_v6_0(function(error,data){callback(error,data)});
            },
            // 印品分类
            function (callback) { //*** results[4]
                sundryUtil.get_printTypeM_v5_7(function(error, data){callback(error,data)});
            }
        ], function(error, results){

            /**
             * kind: -1, 标记不是分类, 1 标记一级分类, 2 标记二级分类, 3 标记三级分类
             * */
            var design = {id : -1, kind:-1, name : '线上设计', en : ''};
            var print  = {id : 4, kind:1, name : '线下印刷', en : ''};

            print.children = results[4] || [];
            for(var i =0; i < print.children.length; i++) {
                print.children[i].column = sundryUtil.getAppShowColumn_v6_3(print.id, print.children[i].id);
                print.children[i].children = [];
                print.children[i].kind = 2; // 印品的 children 是二级分类
            }

            var types = [design, print];

            var poster          = {id : 1, kind:1, name : '单页', en : ''};
            var socialMedia     = {id : 6, kind:1, name : '社交媒体',en : ''};
            var eBusiness       = {id : 7, kind:1, name : '电商',en : ''};
            var wechatBusiness  = {id : 8, kind:1, name : '微商', en : ''};

            poster.children = results[0] || [];
            socialMedia.children = results[1] || [];
            eBusiness.children = results[2] || [];
            wechatBusiness.children = results[3] || [];

            var maxLen = 0;
            maxLen = maxLen > poster.children.length ? maxLen : poster.children.length;
            maxLen = maxLen > socialMedia.children.length ? maxLen : socialMedia.children.length;
            maxLen = maxLen > eBusiness.children.length ? maxLen : eBusiness.children.length;
            maxLen = maxLen > wechatBusiness.children.length ? maxLen : wechatBusiness.children.length;

            for(var i=0; i < maxLen; i++) {
                if(i<poster.children.length) {
                    poster.children[i].kind = 2; // 单页的 children 是二级分类
                    poster.children[i].column = sundryUtil.getAppShowColumn_v6_3(poster.id, poster.children[i].id);
                    poster.children[i].children = [];
                }
                if(i<socialMedia.children.length) {
                    socialMedia.children[i].kind = 2; //社交媒体的 children 是二级分类
                    socialMedia.children[i].column = sundryUtil.getAppShowColumn_v6_3(socialMedia.id, socialMedia.children[i].id);
                    socialMedia.children[i].children = [];
                }
                if(i<eBusiness.children.length) {
                    eBusiness.children[i].kind = 2; // 电商的 children 是二级分类
                    eBusiness.children[i].column = sundryUtil.getAppShowColumn_v6_3(eBusiness.id, eBusiness.children[i].id);
                    eBusiness.children[i].children = [];
                }
                if(i<wechatBusiness.children.length) {
                    wechatBusiness.children[i].kind = 2; // 微商的 children 是二级分类
                    wechatBusiness.children[i].column = sundryUtil.getAppShowColumn_v6_3(wechatBusiness.id, wechatBusiness.children[i].id);
                    wechatBusiness.children[i].children = [];
                }
            }
            design.children = [poster,socialMedia,wechatBusiness,eBusiness];
            return callback(null,types);
        });
    };


    /**
     * 获取 app 6.6 筛选条件信息
     *
     * @return  app 6.6 筛选条件信息
     * */
    sundryUtil.getsearchConditionsInfo = function(callback) {
        var Condition = {};
        var vipCondition = {"id" : 1, "name" : "vip 类型", "requestKey" : "vips", "options" : [
                {
                    "id" : 1,
                    "name" : "全部模板",
                    "values" : "[0,10]"
                },
                {
                    "id" : 2,
                    "name" : "VIP模板",
                    "values" : "[10]"
                },
                {
                    "id" : 3,
                    "name" : "免费模板",
                    "values" : "[0]"
                }
            ]
        };
        var typeCondition = {"id" : 2, "name" : "一级分类", "requestKey" : "typeLs", "options" : [
                {
                    "id" : 1,
                    "name" : "全部分类",
                    "values" : "[1,4,6,7,8]"
                },
                {
                    "id" : 2,
                    "name" : "线上设计",
                    "values" : "[1,6,7,8]"
                },
                {
                    "id" : 3,
                    "name" : "线下印刷",
                    "values" : "[4]"
                }
            ]
        };
        var orderCondition = {"id" : 3, "name" : "排序方式", "requestKey" : "orderBy", "options" : [
                {
                    "id" : 1,
                    "name" : "时间排序",
                    "values" : "1"
                },
                {
                    "id" : 2,
                    "name" : "热度排序",
                    "values" : "2"
                }
            ]
        };

        Condition.vipCondition = vipCondition;
        Condition.typeCondition = typeCondition;
        Condition.orderCondition = orderCondition;
        return callback(null,Condition);
    };


    /* 获取app一行显示的列数 6.3
     * 参数: typeL	请求数据的一级分类  1 海报/3 ppt/4 印品/6社交媒体
     * 参数: typeM	请求数据的二级分类(-1 标示最新)
     * 参数[可选]: typeS	请求数据的三级分类, 若不存在标识仅以一级二级分类请求数据
     * 返回值: 列数
     */
    sundryUtil.getAppShowColumn_v6_3 = function(typeL, typeM, typeS){
        var typeLClu =  { "1":2,"3":2,"4":2,"6":2, "8" : 2};
        var typeMClu =  { "60100":1,"60200":2,"60300":1, "70100" : 2, "70200" : 1, "40600" : 1,"40800":1};
        var typeSClu =  {};
        return typeSClu[typeS]
            || typeMClu[typeM]
            || typeLClu[typeL]
            || 2;
    };

    sundryUtil.get_printTypeM_v5_7 = function ( callback){

        var printTypeMs = [
            {"id":40100, "name":"名片", "en":CONFIG.CHS_EN.getEn('名片',1), "icon":""},
            {"id":40200, "name":"传单", "en":CONFIG.CHS_EN.getEn('传单',1), "icon":""},
            {"id":40300, "name":"展架", "en":CONFIG.CHS_EN.getEn('展架',1), "icon":""},
            {"id":40500, "name":"海报", "en":CONFIG.CHS_EN.getEn('海报',1), "icon":""},
            {"id":40600, "name":"优惠券", "en":CONFIG.CHS_EN.getEn('优惠券',1), "icon":""},
            {"id":40700, "name":"不干胶", "en":CONFIG.CHS_EN.getEn('不干胶',1), "icon":""},
            {"id":40800, "name":"停车牌", "en":CONFIG.CHS_EN.getEn('停车牌',1), "icon":""}
        ];
        return callback(null, printTypeMs);

        //var typeL = 4;//分类: 1单页, 2多页, 3 ppt, 4 印品;
        //return this.get_child_type_core(typeL,callback);
    };


    // 微商分类
    sundryUtil.get_wechatBusiness_v6_0 = function ( callback){
        var typeL = 8;//微商;
        return sundryUtil.get_child_type_core(typeL,function(err,data){
            var newItem = {
                id: -1,
                name: '最新',
                en: 'NEW',
                icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2017/06/06/145834596_ZrEsDWtDHCjvUnEcU3Ax'// v5.5
            };

            if(data && data.length>0) {
                data.splice(0,0,newItem);
            } else {
                data = [newItem];
            }

            callback(err,data);
        });
    };

    // 获取电商分类
    sundryUtil.get_eBusinessTypeM_v5_7 = function ( callback){
        var typeL = 7;//分类: 1单页, 2多页, 6社交媒体, 7 电商;

        var data = [
            {
                id : 70200,
                name : "淘宝banner",
                en: CONFIG.CHS_EN.getEn('淘宝banner',1),
                icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2017/07/11/192835140_W0ONMAk2SeO5eAf8eQ5Y'
            },
            {
                id : 70100,
                name : "淘宝主图",
                en: CONFIG.CHS_EN.getEn('淘宝主图',1),
                icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2017/07/11/192835281_ja2RDFbyikdC7tR4Nhum'
            }
        ];
        return callback(null,data);
    };

    // 社交媒体
    sundryUtil.get_socialMediaTypeM_v5_3  = function ( callback){
        var typeL = 6;//分类: 1单页, 2多页, 6社交媒体;

        var data = [
            {
                id : 60100,
                name : "公众号首图",
                en: CONFIG.CHS_EN.getEn('公众号首图',1),
                //icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2017/04/21/151413667_aT280OgpD1RqvsPOivyJ'
                icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2017/06/06/144623714_p2sdxCRdoOvCpVaJF1pt'// v5.5
            },
            {
                id : 60200,
                name : "公众号小图",
                en: CONFIG.CHS_EN.getEn('公众号小图',1),
                //icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2017/04/21/151413491_CRm6WGpMeeQ51rif2kk1'
                icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2017/06/06/144623570_edPABNtm44VyV0LAn3Rd'// v5.5
            }
        ];
        return callback(null,data);
    };


    /**
     * 热门微商
     * @return 热门微商的对象
     */
    sundryUtil.getHotsWechatBusinessV6_4 = function(callback){
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 8;
        var typeM = -1; // 电商, 淘宝banner
        // 获取一级分类对应的热门
        sundryUtil.getHotItemCore_v6_0(typeL, typeL, pageNum, pageSize, null, null, function(error,data){
            // 热门与列表显示列数不同
            data = {
                title: "微商",
                en: CONFIG.CHS_EN.getEn('微商',1),
                typeL: typeL,
                typeM: typeM,
                column: 3,
                direction: 0,
                list: data || []
            };
            return callback(error,data);
        });
    };


    /**
     * 热门海报
     * @return 热门海报的对象
     */
    sundryUtil.getHotsPrintPosterV6_4 = function(callback) {
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 4;
        var typeM = 40500; // 印品, 海报

        sundryUtil.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, CONFIG.PRINT_ITEM_PREVIEW_WIDTH, CONFIG.PRINT_ITEM_PREVIEW_HEIGHT, function(error,data){
            var data = {
                title: "海报",
                en: CONFIG.CHS_EN.getEn('海报',1),
                typeL: typeL,
                typeM: typeM,
                column: 2,
                direction: 0,
                list: data
            };
            return callback(null, data);
        });
    };

    /**
     * 热门不干胶
     * @return 热门不干胶的对象
     */
    sundryUtil.getHotsPrintStickerV6_4 = function(callback) {
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 4;
        var typeM = 40700; // 印品, 不干胶

        sundryUtil.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, CONFIG.PRINT_ITEM_PREVIEW_WIDTH, CONFIG.PRINT_ITEM_PREVIEW_HEIGHT, function(error,data){
            var data = {
                title: "不干胶",
                en: CONFIG.CHS_EN.getEn('不干胶',1),
                typeL: typeL,
                typeM: typeM,
                column: 2,
                direction: 0,
                list: data
            };
            return callback(null, data);
        });
    };

    /**
     * 热门优惠券
     * @return 热门优惠券的对象
     */
    sundryUtil.getHotsPrintCouponV6_4 = function(callback) {
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 4;
        var typeM = 40600; // 印品, 优惠券

        this.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, CONFIG.PRINT_ITEM_PREVIEW_WIDTH, CONFIG.PRINT_ITEM_PREVIEW_HEIGHT, function(error,data){
            var data = {
                title: "优惠券",
                en: CONFIG.CHS_EN.getEn('优惠券',1),
                typeL: typeL,
                typeM: typeM,
                column: 2,
                direction: 0,
                list: data
            };
            return callback(null, data);
        });
    };

    /**
     * 热门淘宝 banner
     * @return 热门淘宝 banner的对象
     */
    sundryUtil.getHotsTaobaoBannerV6_4 = function(callback) {
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 7;
        var typeM = 70200; // 电商, 淘宝banner

        sundryUtil.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, null, null, function(error,data){
            // 热门与列表显示列数不同
            data = {
                title: "淘宝banner",
                en: CONFIG.CHS_EN.getEn('淘宝banner',1),
                typeL: typeL,
                typeM: typeM,
                column: 1,
                direction: 0,
                list: data || []
            };
            return callback(error,data);
        });
    };


    /**
     * 热门淘宝主图
     * @return 热门淘宝主图的对象
     */
    sundryUtil.getHotsTaobaoMainPhotoV6_4 = function(callback) {
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 7;
        var typeM = 70100; // 电商, 淘宝主图

        sundryUtil.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, null, null, function(error,data){
            // 热门与列表显示列数不同
            data = {
                title: "淘宝主图",
                en: CONFIG.CHS_EN.getEn('淘宝主图',1),
                typeL: typeL,
                typeM: typeM,
                column: 3,
                direction: 0,
                list: data || []
            };
            return callback(error,data);
        });
    };


    /**
     * 热门停车牌
     * @return 热门停车牌的对象
     */
    sundryUtil.getHotsStopSignV6_4 = function(callback) {

        var pageSize = 12;
        var pageNum = 0;
        var typeL = 4;
        var typeM = 40800; // 印品, 停车牌
        /**
         // 印品商品预览图宽高
         CONFIG.PRINT_ITEM_PREVIEW_WIDTH  = 344;
         CONFIG.PRINT_ITEM_PREVIEW_HEIGHT = 204;
         * */
        sundryUtil.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, CONFIG.PRINT_ITEM_PREVIEW_WIDTH, CONFIG.PRINT_ITEM_PREVIEW_HEIGHT, function(error,data){
            var data = {
                title: "停车牌",
                en: CONFIG.CHS_EN.getEn('停车牌',1),
                typeL: typeL,
                typeM: typeM,
                column: 2,
                direction: 0,
                list: data
            };
            return callback(null, data);
        });
    };

    /**
     * 热门微信小图
     * @return 热门微信小图的对象
     */
    sundryUtil.getHotsWechatCoverSmallPicV6_4 = function ( callback){
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 6;
        var typeM = 60200;
        sundryUtil.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, null, null, function(error, data){
            // 热门与列表显示列数不同
            data = {
                title: "公众号小图",
                en: CONFIG.CHS_EN.getEn('公众号小图',1),
                typeL: typeL,
                typeM: typeM,
                column: 3.2,
                direction: 0,
                list: data
            };
            return callback(error,data);
        });
    };


    /**
     * 热门微信大图
     * @return 热门微信大图的对象
     */
    sundryUtil.getHotsWechatCoverBigPicV6_4 = function (callback){
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 6;
        var typeM = 60100;
        sundryUtil.getHotItemCore_v6_0(typeL,typeM, pageNum, pageSize, null, null,function(error, data){
            // 热门与列表显示列数不同
            data = {
                title: "公众号首图",
                en: CONFIG.CHS_EN.getEn('公众号首图',1),
                typeL: typeL,
                typeM: typeM,
                column: 2.2,
                direction: 0,
                list: data
            };
            return callback(error,data);

        });
    };

    /**
     * 热门展架
     *
     *  @return 热门展架的对象
     */
    sundryUtil.getHotsDisplayRackV6_4 = function(callback){
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 4;
        var typeM = 40300; // 印品,展架
        sundryUtil.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, CONFIG.PRINT_ITEM_PREVIEW_WIDTH, CONFIG.PRINT_ITEM_PREVIEW_HEIGHT, function(error,data){
            // 热门与列表显示列数不同
            var data = {
                title: "热门展架",
                en: CONFIG.CHS_EN.getEn('热门展架',1),
                typeL: typeL,
                typeM: typeM,
                column: 2.2,
                direction: 0,
                list: data
            };
            return callback(null, data);
        });
    };


    /**
     * 获取热门名片信息
     * @return 热门名片的对象
      */

    sundryUtil.getHotsBusinessCardV6_4 = function(callback){
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 4;
        var typeM = 40100; // 印品,名片

        sundryUtil.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, CONFIG.PRINT_ITEM_PREVIEW_WIDTH, CONFIG.PRINT_ITEM_PREVIEW_HEIGHT, function(error,data){
            // 热门与列表显示列数不同
            var data = {
                title: "名片",
                en: CONFIG.CHS_EN.getEn('名片',1),
                typeL: typeL,
                typeM: typeM,
                column: 2.2,
                direction: 0,
                list: data
            };
            return callback(null, data);
        });
    };


    /**
     * 热门传单
     * @return 热门传单的对象
     * *
      */
    sundryUtil.getHotsLeafletV6_4 = function(callback){
        var pageSize = 12;
        var pageNum = 0;
        var typeL = 4;
        var typeM = 40200; // 印品,传单

        sundryUtil.getHotItemCore_v6_0(typeL, typeM, pageNum, pageSize, CONFIG.PRINT_ITEM_PREVIEW_WIDTH, CONFIG.PRINT_ITEM_PREVIEW_HEIGHT, function(error,data){
            // 热门与列表显示列数不同
            var data = {
                title: "传单",
                en: CONFIG.CHS_EN.getEn('传单',1),
                typeL: typeL,
                typeM: typeM,
                column: 2.2,
                direction: 0,
                list: data
            };
            return callback(null, data);
        });
    };


    /**
     * 获取热门单页数据
     * @return 热门单页数据的对象
     */
    sundryUtil.getHotsPosterV6_4 = function (callback){
        var pageSize = 12;
        var pageNum = 0;
        var type=1;// 分类: 1单页, 2多页, 3ppt
        sundryUtil.getHotItemCore_v6_0(type, type, pageNum, pageSize, null, null, function(error, data){
            // 热门与列表显示列数不同
            data = {
                title: "单页",
                en: CONFIG.CHS_EN.getEn('单页',1),
                typeL: 1,
                typeM: -1,
                column: 3.2,
                direction: 0,
                list: data
            };
            return callback(error,data);
        });

    };

    //-------------------------------------------------- v6.0 热门部分 -----------------------------------------------------
    /***
     * 获取热门设计/商品项目核心方法
     * @param typeL 指定一级分类
     * @param type 指定热门的分类
     * @param pageNum 指定页码
     * @param pageSize 指定页容量
     * @param w 强制指定缩略图宽
     * @param h 强制指定缩略图高
     * @param callback 回调
     *          error 若查询出错, 错误原因
     *          arr 查询结果数组
     */
    sundryUtil.getHotItemCore_v6_0 = function (typeL, type, pageNum, pageSize,  w, h, callback){
        var entity = new TgSpecialTopicModel({
        });

        var skipNum = pageNum*pageSize;
        entity.findHotRelItemsFromDB(function(error,items) {
            if (error) {
                console.log(error);
                return callback(error);
            }
            var arr = [];
            for(var i=0;i<items.length;i++){
                var obj = {
                    id: items[i].goods_id,
                    thumb: items[i].thumb||'',
                    typeL: typeL,
                    title: items[i].goods_name||'',
                    desc: items[i].goods_price||'',
                    w: w || items[i].width,
                    h: h || items[i].height,
                    useCount: items[i].show_apply_cnt||items[i].apply_cnt||0,
                    vip : items[i].vip
                };
                if(typeL != 4) {
                    obj.id = items[i].item_id;
                    obj.title = items[i].tmpl_name||'';
                    obj.desc = items[i].tmpl_price||'';
                }
                // vip 的描述更新为 VIP 专享 add by wangjun 2017-10-27
                if(obj.vip == 10) {
                    obj.desc = 'VIP专享'
                }
                arr.push(obj);
            }
            return callback(null, arr);
        },type,skipNum,pageSize, true);
    };

    /**
     * 场景列表
     * @param callback
     * {
     *  "column": 1,
     *  "direction": 0,
     *  "en": "SCENCE",
     *  "icon": "http://oss-itbour-special-topic-icon.png",
     *  "hiddenMore" : 1,
     *  "list": [{
     *     "h": 204,
     *     "w": 344,
     *     "id": 982,
     *     "thumb": "http://itbourgenerate.osscnhangzhou.aliyuncs.com/image/0.jpg",
     *     "url" : "http://www.itbour.com/scene/yi-jia-si-shi-nian-de-lao-dian.html",
     *     "title": "一家四十年的老店",
     *     "desc" : "浦沿*新生村....."
     *  }],
     *  "title": "场景案例"
     * }
     */
    sundryUtil.getSceneListV6_4 = function(callback){
        (new ItbSceneModel).findScenceItemsFromDB(function(err, ret){
            if(err) {
                return callback(err, null);
            }

            var retData = {
                column: 1,
                direction: 1,
                title: "主题设计",
                en: CONFIG.CHS_EN.getEn('主题设计',1),
                icon: '',// TODO
                hiddenMore: 0,
                list: []
            };
            if(ret && ret.length>0) {
                for(var i=0; i<ret.length; i++) {
                    retData.list.push({
                        w: 260,
                        h: 180,
                        id: ret[i].s_id,
                        thumb: ret[i].image || '',
                        url: ret[i].url || '',
                        title: ret[i].title || '',
                        desc: ret[i].desc || ''
                    });
                }
            }
            retData.list = retData.list.slice(0,3); // 限定3个场景案例
            return callback(null, retData);
        },0,12);
    };

    //------------------------------------------------------------------
    /* 获取首页内容信息
     * 参数：type:分类: 1单页, 2多页, 3ppt，可以为null或者0表示不限制分类
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取热门搜索关键词的数组
     *
     */
    sundryUtil.getHotsSearchV6_4 = function (type, callback){
        var entity = new TgSearchTagModel({
            del_flg:0
        });
        if(type){
            entity.type = type;
        }

        var pageSize = 12;
        entity.findFromDB(function(error,items) {
            if (error) {
                console.log(error);
                return callback(error);
            }
            var hotsSearch = [];
            for(var i=0;i<items.length;i++){
                hotsSearch.push(items[i].name);
            }
            return callback(null, hotsSearch);
        },0,pageSize);
    };
    //------------------------------------------------------------------
    /* 获取首页轮播信息
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取adInfo的数组，数组元素如下：
     *                 kind: 轮播图类型(新增): 1.纯展示 2.点击可跳转url 3.点击跳转至专题列表
     *                 thumb: 轮播图对应的图片
     *                 url: 展示链接
     *                 title: 展示 url 时显示的标题
     *                 id: 展示专题时对应的专题 id(新增)
     *                 typeL: 业务分类(新增)
     *
     * 参数: withOutTopic: true不带专题
     */
    sundryUtil.getAdInfoV6_4 = function (callback, withoutTopic){
        var entity = new ItbNotificationModel({
            type:3,// 消息分类: 1:普通msg; 2:横幅banner信息；3:大幅广告
            del_flg:0
        });
        var pageSize = 12;
        entity.getMessage(function(error,items) {
            if (error) {
                console.log(error);
                return callback(error);
            }
            var adInfo = [];
            for(var i=0;i<items.length;i++){
                adInfo.push({
                    //kind: (items[i].url && items[i].url.length>0) ? 2 : 1,
                    kind: (items[i].url && items[i].url.length>0 ) ? (items[i].encrypt == 0 ? 2 : 4 ) : 1,
                    thumb: items[i].image||'',
                    url: items[i].url||'',
                    title: items[i].title||'',
                    id: 0,
                    type: 0,
                    typeL: 0
                });
            }

            if(withoutTopic) {
                return callback(null, adInfo);
            }

            // 获取专题
            sundryUtil.get_hotsProject_core(2,null,function(err,data){
                if(err) {
                    console.log(err);
                    //return callback(err);
                }

                for(var j=0;j<data.length;j++){
                    adInfo.push({
                        kind: 3,
                        thumb: data[j].thumb||'',
                        url: '',
                        title: data[j].title||'',
                        id: data[j].id,
                        type: data[j].type,
                        typeL: data[j].typeL
                    });
                }
                return callback(null, adInfo);
            });
        });
    };


    //------------------------------------------------------------------
    /* 获取首页热门海报内容信息
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取hotsPoster的数组，数组元素如下：
     *                 id:
     *                 thumb:
     *                 title:
     *                 desc:
     *                 typeL
     *
     */
    sundryUtil.get_hotsPoster = function ( callback){
        var pageSize = 12;
        var pageNum = 0;
        var type=1;// 分类: 1单页, 2多页, 3ppt
        sundryUtil.getHotTopicItems(type,pageNum, pageSize,function(error,data){
            return callback(error,data);
        });
    };

    //------------------------------------------------------------------
    /* 获取首页热门多页内容信息
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取hotsMultiPage的数组，数组元素如下：
     *                 id:
     *                 thumb:
     *                 title:
     *                 desc:
     *                 typeL
     *
     */
    sundryUtil.get_hotsMultiPage = function ( callback){
        var pageSize = 12;
        var pageNum = 0;
        var type=2;// 分类: 1单页, 2多页, 3ppt
        this.getHotTopicItems(type,pageNum, pageSize,function(error,data){
            return callback(error,data);
        });
    };

    //------------------------------------------------------------------
    /* 获取热门名片信息
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取hotsBusinessCard的数组，数组元素如下：
     *                 id: 商品id
     *                 thumb:
     *                 typeL:
     *                 title: 商品名
     *                 desc: 价格描述
     */
    sundryUtil.get_hotsBusinessCard = function(callback){
        var pageSize = 12;
        var pageNum = 0;
        var type=40100;
        var skipNum = pageNum*pageSize;
        (new TgSpecialTopicModel).findHotRelItemsFromDB(function(error,items) {
            if (error) {
                console.log(error);
                return callback(error, null);
            }
            var retInfo = [];
            for(var i=0;i<items.length;i++){
                retInfo.push({
                    id: items[i].goods_id,
                    thumb: items[i].thumb||'',
                    typeL: 4,// 印品
                    title: items[i].goods_name||'',
                    desc: items[i].goods_price||''
                });
            }
            return callback(null, retInfo);
        },type,skipNum,pageSize);
    };


    //------------------------------------------------------------------
    /* 获取热门传单信息
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取hotsLeaflet的数组，数组元素如下：
     *                 id: 商品id
     *                 thumb:
     *                 typeL:
     *                 title: 商品名
     *                 desc: 价格描述
     */
    sundryUtil.get_hotsLeaflet = function(callback){
        var pageSize = 12;
        var pageNum = 0;
        var type=40200;
        var skipNum = pageNum*pageSize;
        (new TgSpecialTopicModel).findHotRelItemsFromDB(function(error,items) {
            if (error) {
                console.log(error);
                return callback(error, null);
            }
            var retInfo = [];
            for(var i=0;i<items.length;i++){
                retInfo.push({
                    id: items[i].goods_id,
                    thumb: items[i].thumb||'',
                    typeL: 4,// 印品
                    title: items[i].goods_name||'',
                    desc: items[i].goods_price||''
                });
            }
            return callback(null, retInfo);
        },type,skipNum,pageSize);
    };
    //------------------------------------------------------------------
    /* 获取首页内容信息
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取poseterTypeM
     *
     */
    sundryUtil.get_poseterTypeM = function ( callback){
        var typeL = 1;//分类: 1单页, 2多页;
        return sundryUtil.get_child_type_core(typeL,callback);
    };
    sundryUtil.get_poseterTypeM_v5_1 = function ( callback){
        var typeL = 1;//分类: 1单页, 2多页;
        return sundryUtil.get_child_type_core(typeL,function(err,data){
            var newItem = {
                id: -1,
                name: '最新',
                en: 'NEW',
                //icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/UI/IOS/V5.1/icon/1_2_all.png',
                //icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2017/04/17/145821250_piyCcowbMXmxe2NrFWqX',
                icon: 'http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2017/06/06/145834596_ZrEsDWtDHCjvUnEcU3Ax'// v5.5
            };

            if(data && data.length>0) {
                data.splice(0,0,newItem);
            } else {
                data = [newItem];
            }

            callback(err,data);
        });
    };

    //------------------------------------------------------------------
    /* 获取首页内容信息
     * 参数：typeL: 分类: 1单页, 2多页
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取TypeM的数组，数组元素如下：
     *              id
     *              name
     *              icon(v5_1新增)
     */
    sundryUtil.get_child_type_core = function (typeL,  callback){
        //`state` int(2) NOT NULL DEFAULT '1' COMMENT '1新建,2可制作模版,3可对外发布',
        var entity = new TgTypeModel({
            parent: typeL,
            state:3,
            del_flg:0
        });

        var pageSize = 12;
        entity.getTypeInfoByParent(function(error,items) {
            if (error) {
                console.log(error);
                return callback(error);
            }
            var ret = [];
            if(items ){
                for(var i=0;i<items.length;i++){
                    ret.push({
                        id: items[i].type_id,
                        name: items[i].type_name||'',
                        en: CONFIG.CHS_EN.getEn(items[i].type_name||'',1),// added 2017-06-02
                        icon: items[i].icon||''
                    });
                }
            }

            return callback(null, ret);
        },0,pageSize);
    };

    //------------------------------------------------------------------
    /* 获取首页内容信息
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取multiPageTypeM
     *
     */
    sundryUtil.get_multiPageTypeM = function ( callback){
        var typeL = 2;//分类: 1单页, 2多页;
        return this.get_child_type_core(typeL,callback);
    };

    //----------------------------v5.7 热门系列--------------------------------------
    /*
     参数：type：社交媒体的二级分类
     * 参数：pageNum：页码
     * 参数：pageSize：
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取专题的内容列表的数组，数组元素如下：
     *                 id: 模板id
     *                 thumb:
     *                 typeL:
     *                 title: 模板名称
     *                 desc: 价格描述
     *                 w:
     *                 h:
     *
     */
    sundryUtil.getHotTopicItemsOfEBusinessTypeM = function(type,pageNum,pageSize,callback) {
        var entity = new TgSpecialTopicModel({
        });

        var skipNum = pageNum*pageSize;
        entity.findHotRelItemsFromDB(function(error,items) {
            if (error) {
                console.log(error);
                return callback(error);
            }
            var adInfo = [];
            for(var i=0;i<items.length;i++){
                adInfo.push({
                    id:items[i].item_id,
                    thumb:items[i].thumb,
                    typeL: 7, // 社交媒体
                    title: items[i].tmpl_name||'',
                    desc: items[i].tmpl_price||'',
                    w:items[i].width,
                    h:items[i].height,
                    useCount: items[i].show_apply_cnt||items[i].apply_cnt||0
                });
            }
            return callback(null, adInfo);
        },type,skipNum,pageSize);
    };

    //------------------------------------------------------------------
    /* 首页底部提示数据
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:{title: '提示信息主体', desc: '提示附加信息'}
     *
     */
    sundryUtil.get_bottomInfo = function(callback){
        var retData = {
            "title" : "网页版已经上线, 制作更加轻松快捷~",
            "desc" : "www.itbour.com"
        };
        return callback(null, retData);
    };

    //------------------------------------------------------------------
    /* 获取热门展架数据
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取hotsDisplayRack的数组，数组元素如下：
     *                 id: 商品id
     *                 thumb:
     *                 typeL:
     *                 title: 商品名
     *                 desc: 价格描述
     */
    // todo 新方法, 待审核 begin
    sundryUtil.get_hotsDisplayRack_v5 = function(callback){
        var pageSize = 12;
        var pageNum = 0;
        var type=40300; // 展架用图
        var skipNum = pageNum*pageSize;
        (new TgSpecialTopicModel).findHotRelItemsFromDB(function(error,items) {
            if (error) {
                console.log('tg3Util.js [get_hotsDisplayRack_v5] error: '+error);
                return callback(error, null);
            }
            var retInfo = [];
            for(var i=0;i<items.length;i++){
                retInfo.push({
                    id: items[i].goods_id,
                    thumb: items[i].thumb||'',
                    typeL: 4,// 印品
                    title: items[i].goods_name||'',
                    desc: items[i].goods_price||''
                });
            }
            return callback(null, retInfo);
        },type,skipNum,pageSize);
    };

    //------------------------------------------------------------------
    /* 获取专题的内容列表
     * 参数：type：1单页, 2多页, 3ppt
     * 参数：pageNum：页码
     * 参数：pageSize：
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取专题的内容列表的数组，数组元素如下：
     *                 id: 模板id
     *                 thumb:
     *                 typeL:
     *                 title: 模板名称
     *                 desc: 价格描述
     *                 w:
     *                 h:
     *
     */
    sundryUtil.getHotTopicItems = function ( type,pageNum,pageSize,callback){
        var entity = new TgSpecialTopicModel({
        });

        var skipNum = pageNum*pageSize;
        entity.findHotRelItemsFromDB(function(error,items) {
            if (error) {
                console.log(error);
                return callback(error);
            }
            var adInfo = [];
            for(var i=0;i<items.length;i++){
                adInfo.push({
                    id:items[i].item_id,
                    thumb:items[i].thumb,
                    typeL: type,
                    title: items[i].tmpl_name||'',
                    desc: items[i].tmpl_price||'',
                    w:items[i].width,
                    h:items[i].height,
                    useCount: items[i].show_apply_cnt||items[i].apply_cnt||0
                });
            }
            return callback(null, adInfo);
        },type,skipNum,pageSize);
    };

    //------------------------------------------------------------------
    /* 获取首页内容信息
     * 参数：use: 用途: 1热门, 2专题
     * 参数：type:分类: 0未知 1单页, 2多页, 3ppt,可以传入null
     * 参数：callback：回调，参数如下：
     *          error:错误消息
     *          data:获取hotsProject的数组，数组元素如下：
     *                 id:
     *                 thumb:
     *                 title:
     *                 desc:
     *                 typeL
     *
     */
    sundryUtil.get_hotsProject_core = function ( use,type,callback){
        var entity = new TgSpecialTopicModel({
            use:use,    // 用途: 1热门, 2专题
            publish:1,  // 已发布
            del_flg:0
        });
        if(type){
            entity.type = type;// 分类: 0未知 1单页, 2多页, 3ppt
        }

        var pageSize = 12;
        entity.findSpecTopicWithType(function(error,items) {
            if (error) {
                console.log(error);
                return callback(error);
            }
            var adInfo = [];
            for(var i=0;i<items.length;i++){
                adInfo.push({
                    id:items[i].st_id,
                    thumb:items[i].thumb,
                    title:items[i].title,
                    desc:items[i].desc,
                    type:items[i].type,
                    typeL:items[i].top_type
                });
            }
            return callback(null, adInfo);
        },0,pageSize);
    };

    /**
     * 快速入口通道占时写死
     * @return 快速入口通道的数组对象
     */
    sundryUtil.getFastTrackV6_4 = function(callback){

        var ICON_ARRAY = [
            "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104446651_QajghVvDpmUfXbC0YV7U.png",   // 名片
            "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104359840_2iMVJ0tiLHE7kzmMcvHa.png",   // 单页
            "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104455799_tBsFdOihZpoKVrtBQIQi.png",   // 微商
            "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104410188_molhjYX306J3Ex8OQ18n.png",   // 电商
            "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104341494_BmqneMS8Qtk0GdOfqwsg.png",   // 传单
            "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104505047_Ar9d86DQebyuHJTdYgyF.png",   // 展架
            "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104435113_cKI4KrgcvhCsvdikqylK.png",   // 海报
            "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104423525_mFQLK1o18lPaVwvEorhm.png"    // 社交媒体
        ];
        // 定时配置相关, 设置开始和结束时间, 以及该时间内图标数组即可
        var current = new Date().getTime();
        var begin = new Date('2018/5/1 00:00:00').getTime();
        var end = new Date('2018/5/2 00:00:00').getTime();
        if(current >= begin && current <= end) {
            ICON_ARRAY = [
                "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104446651_QajghVvDpmUfXbC0YV7U.png",
                "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104359840_2iMVJ0tiLHE7kzmMcvHa.png",
                "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104455799_tBsFdOihZpoKVrtBQIQi.png",
                "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104410188_molhjYX306J3Ex8OQ18n.png",
                "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104341494_BmqneMS8Qtk0GdOfqwsg.png",
                "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104505047_Ar9d86DQebyuHJTdYgyF.png",
                "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104435113_cKI4KrgcvhCsvdikqylK.png",
                "http://itbour-back.oss-cn-hangzhou.aliyuncs.com/image/U2/2018/04/18/104423525_mFQLK1o18lPaVwvEorhm.png"
            ];
        }
        var retData = [
            {typeL: 4, typeM: 40100, title: "名片", icon: ICON_ARRAY[0]},
            {typeL: 1, typeM: 40600, title: "单页", icon: ICON_ARRAY[1]},
            {typeL: 8, typeM: -1, title: "微商", icon: ICON_ARRAY[2]},
            {typeL: 7, typeM: -1, title: "电商", icon: ICON_ARRAY[3]},
            {typeL: 4, typeM: 40200, title: "传单", icon: ICON_ARRAY[4]},
            {typeL: 4, typeM: 40300, title: "展架", icon: ICON_ARRAY[5]},
            {typeL: 4, typeM: 40500, title: "海报", icon: ICON_ARRAY[6]},
            {typeL: 6, typeM: -1, title: "社交媒体", icon: ICON_ARRAY[7]}
        ];
        return callback(null, retData);
    };


    /**
     * 获取首页热门专题图片信息
     * @return 首页热门专题图片信息的数组对象
     */
    sundryUtil.getSpecialTopicsV6_4 = function(callback) {
        // 获取专题列表(按时间排序)
        var ent  = new TgSpecialTopicModel({
            use: 2,// 专题
            publish: 1,// 已发布
            del_flg: 0
            //order_by: "update_time"
        });
        ent.findSpecTopicWithType(function(err, ret){
            if(err) {
                return callback(err, null);
            }
            var topics =[];
            if(ret&&ret.length>0) {
                for(var i=0;i<ret.length;i++) {
                    topics.push({
                        id: ret[i].st_id,
                        thumb: ret[i].thumb||'',
                        title: ret[i].title||'',
                        typeL: ret[i].top_type
                    });
                }
            }
            var data = {
                diplayType : 1,
                h : 350,
                w : 710,
                topics : topics
            };
            return callback(null, data);
        },0,6);
    };



    /**
     * 获取设计可用字体列表
     *
     * @author 李强
     * @date 2018-5-20
     *
     * 测试地址
     * http://114.55.172.253:7000/mock/161/yjsc/v2/sundry/getFontList
     * */
    sundryUtil.getFontList = function(callback) {
        // 获取字体列表
        var ent = new ItbFontModel();
        ent.findAllFont(function (err, ret) {
            if (err) {
                return callback(err, null);
            }
            var fonts = [];
            for(var i = 0;i<ret.length;i++){
                var item = ret[i];
                var font = {};
                font.font = item.font_name || "";
                font.alias = JSON.parse(item.alias || "[]");
                font.url = item.url || "";
                fonts.push(font);
            }
            callback(err,{fonts:fonts});
        })
    };

    return sundryUtil;
})();



module.exports = sundryUtil;